class SettingController < ApplicationController
  #Solo puede ser accesados por el administrador
  before_filter :admin_required

  #Muestra todos los parametros configurables por el administrador
  def index
    list
    render :action=>'list'
  end

  # Lista todas las opciones del sistema.
  def list
    @title = "Opciones del Sistema"
    @settings = SystemSetting.find(:all)
  end

  # Guarda los cambios de las opciones del sistema.
  def save_changes
    if request.post?
      @error = []
      @settings = SystemSetting.find(:all)
      
      SystemSetting.transaction {
        @settings.each_index { |s|
          @settings[s].value = params[@settings[s].name.gsub("-", "_").to_sym]
          @settings[s].save!
        }
      }
    else
      redirect_to :action => 'list'
      return
    end
    expire_fragment %r{application/.*}
    redirect_to :controller=> 'account', :action => 'index'
  end
end
